import { getUserInfo } from '@/config/api'

const install = (Vue, vm) => {
  
  /**
   * 是否登录
   * @returns Boolean true|false
   */
  const isLogin = (flag) => {
    // 如果没有token，跳转到登录野蛮
    const token = vm.vuex_token
    if(!token || flag) {
      // 来自哪个页面
      // 当前页
      let currentPages = getCurrentPages().pop();
     
      // 获取页面路径和请求参数
      const {options, route} = currentPages;
			// 参数的key
			const optionsKeys = Object.keys(options) // ['id']
			let params = ''
			if(optionsKeys.length !== 0) {
				params = optionsKeys.reduce((pre, current) => {
					return pre + current + '=' + options[current] + '&'
				}, '?').slice(0, -1)
			}
      // 缓存当前页，用于登录或者注册之后的跳转页
      uni.setStorageSync('back_url', route + params)

      uni.$u.toast('请登录')
      setTimeout(() => {
        uni.$u.route({
          type: 'redirect',
          url: 'pages/auth/login'
        })
      }, 1500)
      return false
    }
    return true
  }

  /**
   * 更新用户信息
   */
  const updateUser = async () => {
    // 请求用户信息
    const userInfo = await getUserInfo()
    // 缓存用户信息
    vm.$u.vuex('vuex_user', userInfo)
  }

  /**
   * 判断是否是安卓设备
   * @returns Boolean true|false
   */
  const isAndroid = () => {
    try {
      const res = uni.getSystemInfoSync();
      console.log(res.platform);
      if(res.platform === 'android') return true
      return false
    } catch (e) {
      // error
    }
  }

  uni.$u.utils = {
    isLogin, updateUser, isAndroid
  }
}

export default {
  install
}